import swaggerJSDoc from 'swagger-jsdoc';
import { koaSwagger } from 'koa2-swagger-ui';

const options = {
  definition: {
    openapi: '3.0.0',
    info: {
      title: 'Koa MVC 用户管理系统 API',
      version: '1.0.0',
      description:
        '一个企业级的 Node.js 后端开发框架，基于 Koa2 + TypeScript 构建。本框架采用 MVC 架构模式，内置 RBAC 权限控制，提供完整的用户认证、商品管理、订单处理等核心功能模块。',
    },
    components: {
      securitySchemes: {
        bearerAuth: {
          type: 'http',
          scheme: 'bearer',
          bearerFormat: 'JWT',
        },
      },
    },
    security: [
      {
        bearerAuth: [],
      },
    ],
  },
  apis: ['./src/*/*.ts'], // 指定 API 注释的文件路径
};

const swaggerSpec = swaggerJSDoc(options);

export const swaggerUI = koaSwagger({
  routePrefix: '/docs', // Swagger UI 的访问路径
  swaggerOptions: {
    spec: swaggerSpec,
    lang: 'zh-CN', // 设置默认语言为中文
  } as any, // 使用 any 类型断言
});
